// backend/controllers/testController.js
const llmService = require('../services/llmService');
const imageService = require('../services/imageService');
const wechatService = require('../services/wechatService');

// 1. 测试大模型连接
const testLlm = async (req, res) => {
  const { apiKey } = req.body;
  if (!apiKey) {
    return res.status(400).json({ success: false, message: 'API Key 不能为空' });
  }
  try {
    // 我们用一个非常简单快速的prompt来测试
    const response = await llmService.generateText("你好", apiKey);
    if (response) {
      res.status(200).json({ success: true, message: '大模型连接成功！', data: response.substring(0, 50) + '...' });
    } else {
      throw new Error("大模型未返回有效内容。");
    }
  } catch (error) {
    res.status(500).json({ success: false, message: '大模型连接失败', error: error.message });
  }
};

// 2. 测试图片API
const testImage = (req, res) => {
  try {
    // 用一个简单的词来测试
    const imageUrl = imageService.getImageUrl("a cat");
    res.status(200).json({ success: true, message: '图片API看起来工作正常', data: { imageUrl } });
  } catch (error) {
    res.status(500).json({ success: false, message: '图片API测试失败', error: error.message });
  }
};

// 3. 测试微信 Access Token
const testWechat = async (req, res) => {
  const { appId, appSecret } = req.body;
  if (!appId || !appSecret) {
    return res.status(400).json({ success: false, message: 'AppID 和 AppSecret 不能为空' });
  }
  try {
    // 直接调用底层的 getAccessToken 函数进行测试
    const accessToken = await wechatService.getAccessToken(appId, appSecret);
    if (accessToken) {
      res.status(200).json({
        success: true,
        message: '微信 Access Token 获取成功！',
        data: {
          accessToken: `${accessToken.substring(0, 10)}... (为安全隐藏部分)`,
          expiresIn: 7200
        }
      });
    } else {
       throw new Error("未能获取到 Access Token，请检查配置或网络。");
    }
  } catch (error) {
     res.status(500).json({ success: false, message: '微信 Access Token 获取失败', error: error.message });
  }
};

module.exports = { testLlm, testImage, testWechat };